function dateFormat(date, fmt) {
  const o = {
    'M+': date.getMonth() + 1, // 月份
    'd+': date.getDate(), // 日
    'h+': date.getHours(), // 小时
    'm+': date.getMinutes(), // 分
    's+': date.getSeconds(), // 秒
    'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
    S: date.getMilliseconds(), // 毫秒
  };
  if (/(y+)/.test(fmt)) {
    fmt = fmt.replace(
      RegExp.$1,
      `${date.getFullYear()}`.substr(4 - RegExp.$1.length)
    );
  }
  for (const k in o) {
    if (new RegExp(`(${k})`).test(fmt)) {
      fmt = fmt.replace(
        RegExp.$1,
        RegExp.$1.length == 1 ? o[k] : `00${o[k]}`.substr(`${o[k]}`.length)
      );
    }
  }
  return fmt;
}

// 获取当天00点00分00秒 时间戳
export const todayStartTime = () => {
  return new Date(new Date().toLocaleDateString()).getTime();
};

// 获取当天23点59分59秒 时间戳
export const todayEndTime = () => {
  return (
    new Date(new Date().toLocaleDateString()).getTime() +
    24 * 60 * 60 * 1000 -
    1
  );
};

/**
 *
 * @returns GUID
 */
export function GUID() {
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
    const r = (Math.random() * 16) | 0;
    const v = c == 'x' ? r : (r & 0x3) | 0x8;
    return v.toString(16);
  });
}

export function shortcuts() {
  return [
    {
      text: '长期有效',
      value: () => {
        return [new Date(), new Date('2038/01/01 00:00:00')];
      },
    },
    {
      text: '一周',
      value: () => {
        const start = new Date();
        const end = new Date();
        end.setTime(start.getTime() + 3600 * 1000 * 24 * 7);
        return [start, end];
      },
    },
    {
      text: '一个月',
      value: () => {
        const start = new Date();
        let end = new Date();
        // end.setTime(stargt.getTime() + 3600 * 1000 * 24 * 30)
        end = new Date(end.setMonth(end.getMonth() + 1));
        return [start, end];
      },
    },
    {
      text: '三个月',
      value: () => {
        const start = new Date();
        let end = new Date();
        end = new Date(end.setMonth(end.getMonth() + 3));

        // end.setTime(stargt.getTime() + 3600 * 1000 * 24 * 7)
        return [start, end];
      },
    },
    {
      text: '半年',
      value: () => {
        const start = new Date();
        let end = new Date();
        end = new Date(end.setMonth(end.getMonth() + 6));
        // end.setTime(stargt.getTime() + 3600 * 1000 * 24 * 7)
        return [start, end];
      },
    },
    {
      text: '一年',
      value: () => {
        const start = new Date();
        const end = new Date();
        end.setTime(start.getTime() + 3600 * 1000 * 24 * 365);
        return [start, end];
      },
    },
  ];
}

export default {
  dateFormat,
};
